package com.sq.partner.manager.service;

import java.util.List;
import java.util.Map;





import javax.servlet.http.HttpServletResponse;

import com.sq.partner.manager.mybatis.model.CoreDept;
import com.sq.partner.manager.mybatis.model.TradProtocolValue;
import com.sq.partner.manager.util.Page;


public interface NoCarProtocolService {
	
	/**
	 * 查询用户权限机构及其子机构
	 */
	public List<CoreDept> queryPrivilegeBranch(String deptCodeStr) throws Exception;
	/**
	 * 根据添加查询协议配置信息
	 * @param page
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public Page<Map<String,Object>> queryTradProtocolValuePage(Page<Map<String,Object>> page, Map<String, Object> map) throws Exception;
	
	/**
	 * 根据协议号查询协议信息
	 * @param protocolNo
	 * @return
	 * @throws Exception
	 */
	public Map<String,Object> queryCJBTradProtocolValueByProtocolNo(String protocolNo) throws Exception;
	
	/**
	 * 根据出单机构、协议类型、方案类型查询最大流水号
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public String queryMaxSerialNumber(Map<String,Object> map) throws Exception;
	
	/**
	 * 添加协议内容
	 * @param lists
	 * @param map
	 * @throws Exception
	 */
	public void addTradProtocolValue(List<TradProtocolValue> lists,Map<String,Object> map) throws Exception;
	 /**
	 * 更新协议内容
	 * @param lists
	 * @param map
	 * @throws Exception
	 */
	public void updateTradProtocolValue(List<TradProtocolValue> lists,Map<String,Object> map) throws Exception;
	 /**
	 * 根据协议号删除协议内容
	 * @param protocolNo
	 * @throws Exception
	 */
	public void delTradProtocolValue(String protocolNo) throws Exception;
	
	/**
	 * 协议详情导出 
	 * @param response
	 * @param map
	 * @throws Exception
	 */
	public void buildExcel(HttpServletResponse response, Map<String, Object> map) throws Exception;
}
